A database (DB) is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality (for example, the availability of seats on an aircraft), in a way that supports processes requiring this information (for example, finding an aircraft with seats available). This definition is very general, and is independent of the type of technology used.
The term “database” may be narrowed to specify particular aspects of the organized collection of data and refers herein to a physical database as data content in a computer readable data storage device. The term database is correctly applied to the data and their supporting data structures, and not to an associated database management system DBMS. The database data collection with a DBMS is referred to herein as a database system.
A Knowledge management System (“KMS”) is an application that is built on top of a DBMS and manipulates data within the structure of a DBMS. While a DBMS contains facts, a KMS adds rules and relationships to those facts to convert the facts into a model that can be used by software to automatically make further inferences and decisions.
The term database system implies that the collection of data is managed to some level of quality (measured in terms of accuracy, availability, usability, and resilience) and this in turn often implies the use of a general-purpose database management system (DBMS). A general-purpose DBMS is typically a complex software system that meets many usage requirements, and the databases that it maintains are often large and complex. The utilization of databases is now spread to such a wide degree that virtually every technology and product relies on databases and DBMSs for its development and commercialization, and may even have such embedded in it. Well known exemplary DBMSs include Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, MySQL and SQLite. A DBMS also needs to provide effective run-time execution to properly support (e.g., in terms of performance, availability, and security) as many end-users as needed.
The design, construction, and maintenance of a complex database has historically required the skills of a specialist, whose tasks are supported by specialized computer tools provided either as part of the DBMS or as stand-alone software products. These tools include specialized database languages including data definition languages (DDL), data manipulation languages (DML), and query languages. These can be seen as special-purpose programming languages, tailored specifically to manipulate databases; sometimes they are provided as extensions of existing programming languages, with added database commands. The most widely supported database language is SQL, which has been developed for the relational data model and combines the roles of DDL, DML, and a query language.
However, the common every day user is not a skilled database programmer Oft times the user is left to his own devices to use standard one-size-fits-all query tools and data presentations. Although data presentations are known that sort results by subject relevancy, those data presentations are typically rendered as a list of documents pages long with mere summary lines attempting to describe the data contained in each document. Hence, there is a need for methods to alleviate the need for special programming skills to efficiently retrieve desired data from large complex databases and to provide the most useful display of the requested information.